package com.bjtu.ptsite.mapper;

import org.apache.ibatis.annotations.*;

/**
 *
 * @author Zehao Wang, Junjie Zhang, Yutao Wei
 *
 */
@Mapper
public interface FollowMapper {

    /**
     * 插入一条关注记录，表示一个用户关注了另一个用户。
     *
     * @param curUserId 当前进行关注操作的用户 ID
     * @param userId    被关注的用户 ID
     */
    @Insert("INSERT INTO follow(follow_id,followed_id) VALUES(#{curUserId},#{userId})")
    void insertFollow(int curUserId, int userId);

    /**
     * 删除一条关注记录，表示一个用户取消关注另一个用户。
     *
     * @param curUserId 当前进行取消关注操作的用户 ID
     * @param userId    被取消关注用户的 ID
     */
    @Delete("DELETE FROM follow WHERE follow_id = #{curUserId} and followed_id = #{userId}")
    void deleteFollow(int curUserId, int userId);

    /**
     * 查询两个用户之间是否存在关注关系。
     *
     * @param curUserId 当前查询的用户 ID
     * @param userId    被查询是否被关注的用户 ID
     * @return 如果存在关注关系则返回大于 0 的数值，否则返回 0
     */
    @Select("SELECT COUNT(*) FROM follow WHERE follow_id = #{curUserId} and followed_id = #{userId}")
    int selectFollow(int curUserId, int userId);
}
